# -*- coding: utf-8 -*- 
# @project : 《Atcoder》
# @Author : created by bensonrachel on 2021/10/8
# @File : 20.Edit Distance.py
def dp_solve():
    dp = [[0]*(m+1) for _ in range(n+1)]
    for i in range(1,n+1):
        dp[i][0] = i
    for j in range(1,m+1):
        dp[0][j] = j
    for i in range(1,n+1):
        for j in range(1,m+1):
            if(a[i-1] == b[j-1]):
                dp[i][j] = dp[i-1][j-1]#当前匹配位相等的话说明不用进行编辑，直接等于dp[i-1][j-1]即可。
            else:
                dp[i][j] = min(dp[i-1][j-1]+1,dp[i-1][j]+1,dp[i][j-1]+1)
    return dp[-1][-1]
"""
每个操作都是互相对称的，A对B的编辑距离和B对A的编辑距离是相等的。这里自己设定A为行（竖），B为列（横），求A对B的编辑距离
填表，编辑距离是min的，状态转移：
当前匹配位相等的话说明不用进行编辑，直接等于dp[i-1][j-1]即可。
当前匹配位不相等的话说明需要进行编辑，替换操作：dp[i-1][j-1]+1、删除操作：dp[i-1][j]+1、插入操作：dp[i][j-1]+1
"""
if __name__ == '__main__':
    a = input()
    b = input()
    n = len(a)
    m = len(b)
    ans = dp_solve()
    print(ans)


